package com.kerrykidz.workflow.service;

import java.util.List;

import com.kerrykidz.system.vo.UserInfo;
import com.kerrykidz.workflow.dao.model.HrmLeaveEntity;
import com.kerrykidz.workflow.vo.TypeVo;
import com.kerrykidz.workflow.vo.LeaveVo;
import com.kerrykidz.workflow.vo.SearchParamVo;
import com.kerrykidz.workflow.vo.WorkflowParamVo;
import com.rdp.framework.exception.RDPException;

/**
 * 请假相关接口类
 * @author zhuss
 *
 */
public interface ILeaveWorkflowService {
	/**
	 * 获取所有的请假类型
	 * @return
	 */
	public List<TypeVo> findLeaveTypeList() throws RDPException;
	
	/**
	 * 查询请假列表
	 * @return
	 */
	public List<LeaveVo> findLeaveList(SearchParamVo searchParam) throws RDPException;
	
	/**
	 * 保存请假流程
	 * @param hle
	 */
	public void saveLeave(HrmLeaveEntity hle,String btnType,UserInfo user) throws RDPException;
	
	/**
	 * 根据ID获取请假
	 * @return
	 * @throws RDPException
	 */
	public LeaveVo findLeaveById(String id,UserInfo user) throws RDPException;
	
	
	/**
	 * 修改请假
	 * @param hle
	 * @throws RDPException
	 */
	public void updateLeave(HrmLeaveEntity hle,String btnType,UserInfo user)throws RDPException;
	
	/**
	 * 处理任务
	 * @param taskId
	 * @param userId
	 * @param map
	 * @throws RDPException
	 */
	public void completeLeave(WorkflowParamVo workflowparam)throws RDPException;
	
}
